﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using ComunesMGI.DataTypes;
using System.Xml;
using ComunesMGI.Enum;
using System.Configuration;
using MGI.AccesoDatos.AccesoFS;

namespace MGI.AccesoDatos
{
    class DAOIncidentes: IDatosIncidentes
    {
        /// <summary>
        /// PRECONDICION: Existe el cliente y el sistema especificado.
        /// </summary>
        /// <param name="cliente"></param>
        /// <param name="sistema"></param>
        /// <param name="lista"></param>
        /// <returns></returns>
        public List<DataCampo> getCampos(DataCliente cliente, DataSistema sistema, Lista tipoLista)
        {
            FSIncidentes fsIncidentes = new FSIncidentes();
            return fsIncidentes.getCampos(cliente, sistema, tipoLista);
        }

    

     
        public List<DataIncidenteReporte> getIncidentesCerradosPeriodo(DataCliente cliente, DataSistema sistema, DateTime fechaDesde, DateTime fechaHasta)
        {
            /*string pathClientesInfo = ConfigurationManager.AppSettings.Get("pathInfoClientes");
            DirectoryInfo dirInfo = new DirectoryInfo(pathClientesInfo);

            string pathInfoSitema = pathClientesInfo + "\\" + cliente.Nombre + "\\" + sistema.Nombre + ".xml";

            //Lista con los nombre de los campos a retornar
            List<DataReporteIncidenteCerrado> _icp = new List<DataReporteIncidenteCerrado>();

            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(pathInfoSitema);
            XmlNodeList listaNodoSistema = xDoc.GetElementsByTagName("sistema");
            XmlNodeList listaNodoListas = ((XmlElement)listaNodoSistema[0]).GetElementsByTagName("listas");

            string lista = "incidentes";
            XmlNodeList listaNombreIncidente = nodoCampo.GetElementsByTagName("titulo");
            string nomIncidente = ((XmlElement)listaNombreIncidente[0]).InnerText;

            XmlNodeList listaNodoLista = ((XmlElement)listaNodoListas[0]).GetElementsByTagName(lista);
            XmlNodeList listaNodoCampo = ((XmlElement)listaNodoLista[0]).GetElementsByTagName("campo");
            foreach (XmlElement nodoCampo in listaNodoCampo)
            {
                XmlNodeList listaNombreCampo = nodoCampo.GetElementsByTagName("nombre");
                string nomCampo = ((XmlElement)listaNombreCampo[0]).InnerText;

                XmlNodeList listaParteMail = nodoCampo.GetElementsByTagName("parteMail");
                string textoParteMail = ((XmlElement)listaParteMail[0]).InnerText;
                ParteMail parteMail;

                switch (textoParteMail)
                {
                    case "BODY":
                        parteMail = ParteMail.BODY;
                        break;
                    case "DATE":
                        parteMail = ParteMail.DATE;
                        break;
                    case "FROM":
                        parteMail = ParteMail.FROM;
                        break;
                    case "SUBJECT":
                        parteMail = ParteMail.SUBJECT;
                        break;
                    default:
                        parteMail = ParteMail.NINGUNO;
                        break;
                }



                DataCampo dataCampo = new DataCampo(nomCampo, parteMail);
                campos.Add(dataCampo);
            }
            return campos;*/
            List<DataIncidenteReporte> _ldicp = new List<DataIncidenteReporte>();
            //DataReporteIncidenteCerrado dr = new DataReporteIncidenteCerrado();
            //dr.Cliente = "Cliente 1";
            //dr.Sistema = ;;

            throw new NotImplementedException();
        }
    }
 }
 
